package org.groupg.mockdatabyspring.morkdata.model;


import cn.hutool.core.lang.UUID;
import lombok.Getter;
import lombok.Setter;
import org.groupg.mockdatabyspring.morkdata.model.enums.INTERFACETYPE;
import org.groupg.mockdatabyspring.morkdata.model.enums.ISASYNC;
import org.groupg.mockdatabyspring.morkdata.model.enums.OutPutType;

/**
 * 接口向对象内容
 */
@Getter
@Setter
public class ITTaskInfo {

    /**
     * 创建对象时自动生成的流水号，该流水号用于生成文件夹名以及返回请求内容，是一个普通处理过程。
     * <br/>
     * 默认为短 uuid
     */
    private final String taskID = UUID.fastUUID().toString();

    /**
     * 是否异步处理 默认为否，但如果文件超过 50m 则自动强制转为异步处理,避免性能瓶颈.
     * <br/>
     * 默认为同步
     */
    private boolean isAsync = ISASYNC.no;

    /**
     * 要生成任务数据的类型 详见 {@link INTERFACETYPE} ,若任务数据为 excel 则强制认为 outPutType 为 {@link OutPutType#FILE}
     * <br/>
     * 默认为 JSON
     */
    private String interFaceType = INTERFACETYPE.JSON;

    /**
     * 要产出的内容 如果产出内容过大,将影响实际通知方式,避免网络传输等性能问题,针对模板清单的内容
     * <br/>
     * 默认通过模板生成结果
     */
    private String outPutType = OutPutType.TEMPLATE;


    /**
     * 模板内容，模板内容的格式依赖 freemarker 模板 可以是 json 也可以是任意内容，但需要整体处理
     */
    private String tempString = "";

    /**
     * 要输出的文件全路径，位置在服务器上，如果使用过程限制了异步且输出为文件，则该路径不能为空
     */
    private String filePath = "";


}
